using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using System.Windows.Forms;
using Fawcett.Plugins;

namespace Fawcett.Plugins
{
	/// <summary>
	/// A public interface to be used by all custom plugins
	/// </summary>
    /// 
    public delegate void PluginEventHandler(object sender, EPlugin a);

    public enum TabLocation { HOME, SYSTEM, FAULT, OWN }

	public interface IPlugin
	{
        string Name{get;}
        string Description { get; }
        string Version { get; }
        
        [Browsable(false)] 
        TabLocation Location { get; }

        RibbonTab SetupMenu(RibbonTab HomeTab);

        void PluginEventHandler(object sender, EPlugin p);


       [Browsable(false)] 
       Form parent { get; set; }
    }
}
